IF exists(SELECT * FROM dbo.sysobjects WHERE name='WEB_geefVerjaardagen' AND xtype='P') 
BEGIN
	DROP PROCEDURE WEB_geefVerjaardagen
END
GO

CREATE procedure WEB_geefVerjaardagen(
@min integer)
as
set nocount on

-- Een tijdelijke tabel, die de XML-gegevens zal bevatten in de eerste rij, eerste kolom (T-SQL kan nl. geen text exporteren).
create table #werk  (tekst text null)
insert into #werk 
values ('')

-- Een pointer naar de XML-tekst:
declare @@ptrval varbinary(16)
select @@ptrval = textptr(tekst) from #werk

----------------------------------------------------------------------------
--             Header
----------------------------------------------------------------------------

updatetext #werk.tekst @@ptrval null 0 '<?xml version="1.0" encoding="ISO-8859-1" ?>'
set nocount on

----------------------------------------------------------------------------
--             Tekst
----------------------------------------------------------------------------
declare @datum dateTime

declare @minus varchar(100)
declare @dag varchar(100)
declare @naam varchar(120)
declare @klas varchar(100)
declare @gebodat varchar(100)
declare @geboortedatum datetime

set @datum = dateAdd(d,@min,getDate())
set @dag = '<dag>' + convert(varchar,@datum,103)  + '</dag>'
set @minus = '<minus>' + convert(varchar(10),@min)  + '</minus>'

updatetext #werk.tekst @@ptrval null 0 '<verjaardagen>'
updatetext #werk.tekst @@ptrval null 0 @dag
updatetext #werk.tekst @@ptrval null 0 @minus



updatetext #werk.tekst @@ptrval null 0 '<leerlingen>'
declare deCursor cursor local for 
   select l.voornaam + ' ' + l.achternaam as naam,l.klas,geboortedatum
   from leerlingen.dbo.administratieveGegevens as a
 	left join leerlingen.dbo.leerlingen as l
	on l.inschrijvingsNr = a.inschrijvingsNr
   where datePart(d,geboorteDatum) = datepart(d,@datum)
	and datePart(m,geboorteDatum) = datepart(m,@datum)
   order by klas,naam1,geboorteDatum DESC
   for read only     
open deCursor

fetch next from deCursor into @naam,@klas,@geboortedatum
while (@@fetch_status=0)
  begin
    set @naam = '<naam>' + isNull(@naam,'') + '</naam>'
    set @klas = '<klas>' + isNull(@klas,'') + '</klas>'
    set @gebodat = '<geboren>' + isNull(convert(varchar,@geboortedatum,103),'') + '</geboren>' 
    updatetext #werk.tekst @@ptrval null 0 '<lln>'
    updatetext #werk.tekst @@ptrval null 0 @naam
    updatetext #werk.tekst @@ptrval null 0 @klas
    updatetext #werk.tekst @@ptrval null 0 @gebodat
    updatetext #werk.tekst @@ptrval null 0 '</lln>'
    fetch next from deCursor into @naam,@klas,@geboortedatum
  end
close deCursor
deallocate deCursor
updatetext #werk.tekst @@ptrval null 0 '</leerlingen>'

updatetext #werk.tekst @@ptrval null 0 '<leraars>'
declare deCursor cursor local for 
   select l.voornaam + ' ' + l.achternaam as naam,geboortedatum
   from leraars.dbo.administratie as a
 	left join leraars.dbo.leraars as l
	on l.naamcode = a.naamcode
   where datePart(d,geboorteDatum) = datepart(d,@datum)
	and datePart(m,geboorteDatum) = datepart(m,@datum)
   order by geboorteDatum DESC
   for read only     
open deCursor

fetch next from deCursor into @naam,@geboortedatum
while (@@fetch_status=0)
  begin
    set @naam = '<naam>' + isNull(@naam,'') + '</naam>'
    set @gebodat = '<geboren>' + isNull(convert(varchar,@geboortedatum,103),'') + '</geboren>' 
    updatetext #werk.tekst @@ptrval null 0 '<ler>'
    updatetext #werk.tekst @@ptrval null 0 @naam
    updatetext #werk.tekst @@ptrval null 0 @gebodat
    updatetext #werk.tekst @@ptrval null 0 '</ler>'
    fetch next from deCursor into @naam,@geboortedatum
  end
updatetext #werk.tekst @@ptrval null 0 '</leraars>'


updatetext #werk.tekst @@ptrval null 0 '</verjaardagen>'

select * from #werk
return